A Statically Allocated Parallel Functional Language

نویسندگان

  • Alan Mycroft
  • Richard Sharp
چکیده

We describe SAFL, a call-by-value first-order functional language which is syntactically restricted so that storage may be statically allocated to fixed locations. Evaluation of independent sub-expressions happens in parallel—we use locking techniques to protect shared-use function definitions (i.e. to prevent unrestricted parallel accesses to their storage locations for argument and return values). SAFL programs have a well defined notion of total (program and data) size which we refer to as ‘area’; similarly we can talk about execution ‘time’. Fold/unfold transformations on SAFL provide mappings between different points on the area-time spectrum. The space of functions expressible in SAFL is incomparable with the space of primitive recursive functions, in particular interpreters are expressible. The motivation behind SAFL is hardware description and synthesis—we have built an optimising compiler for translating SAFL to silicon.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Statically-allocated languages for hardware

Current HDLs present a very low level of abstraction, often requiring the designer to work on details that could be hidden, and leaving little scope for synthesis tools to optimise performance. High-level hardware descriptions thus have a useful rôle in EDA, especially in areas such as rapid development, and reconfigurable computing using devices such as FPGAs. One approach to implementing thes...

متن کامل

Dagstuhl Seminar on High Level Parallel Programming: Applicability, Analysis and Performance

Parallel Machines for the Polytope Model Nils Ellmenreich Universität Passau, Germany Since scientific algorithms are often easily expressible in a functional language and they are often used for huge problem sizes, we propose an approach to statically parallelize this class of algorithms. The method, polyhedral parallelization, was adapted to the functional setting. For the code generation, we...

متن کامل

Compilation of a specialized functional language for massively parallel computers

We propose a parallel specialized language that ensures portable and costpredictable implementations on parallel computers. The language is basically a rst-order, recursion-less, strict functional language equipped with a collection of higher-order functions or skeletons. These skeletons apply on (nested) vectors and can be grouped in four classes: computation, reorganization, communication, an...

متن کامل

Memory Reuse Analysis in the Polyhedral

In the context of developing a compiler for a Alpha, a functional data-parallel language based on systems of aane recurrence equations (SAREs), we address the problem of transforming scheduled single-assignment code to multiple assignment code. We show how the polyhedral model allows us to statically compute the lifetimes of program variables, and thus enables us to derive necessary and suucien...

متن کامل

SI 413, Unit 9: Implementation Issues

Recall from Unit 6 that there are three ways variable storage can be allocated in a program: statically, on the stack, or from the heap. Statically allocated variables have a lifetime equal to the entire program execution; they never die. Stack allocation is tied to function calls, so anything allocated on the stack (such as local variables within a function) will simply be de-allocated when th...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000